package be.redo.controller;

//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Configurable;
//import org.springframework.core.convert.converter.Converter;
//import org.springframework.format.FormatterRegistry;
//import org.springframework.format.support.FormattingConversionServiceFactoryBean;
//
//import be.redo.model.entities.AirlineCompany;
//import be.redo.model.entities.Airport;
//import be.redo.model.entities.Continent;
//import be.redo.model.entities.Customer;
//import be.redo.model.entities.Discount;
//import be.redo.model.entities.Employee;
//import be.redo.model.entities.Flight;
//import be.redo.model.entities.Line;
//import be.redo.model.entities.Payment;
//import be.redo.model.entities.Region;
//import be.redo.model.entities.Reservation;
//import be.redo.model.entities.Residence;
//import be.redo.model.entities.Stay;
//import be.redo.model.entities.Vacation;
//import be.redo.service.AirlineCompanyService;
//import be.redo.service.AirportService;
//import be.redo.service.ContinentService;
//import be.redo.service.CustomerService;
//import be.redo.service.DiscountService;
//import be.redo.service.EmplyeeService;
//import be.redo.service.FlightService;
//import be.redo.service.LineService;
//import be.redo.service.PaymentService;
//import be.redo.service.RegionService;
//import be.redo.service.ReservationService;
//import be.redo.service.ResidenceService;
//import be.redo.service.StayService;
//import be.redo.service.VacationService;

//@Configurable
/**
 * A central place to register application converters and formatters. 
 */
public class ApplicationConversionServiceFactoryBean /*extends
		FormattingConversionServiceFactoryBean*/ {

//	@SuppressWarnings("deprecation")
//	@Override
//	protected void installFormatters(FormatterRegistry registry) {
//		super.installFormatters(registry);
//		// Register application converters and formatters
//	}
//
//	@Autowired
//	AirlineCompanyService airlineCompanyService;
//
//	@Autowired
//	AirportService airportService;
//
//	@Autowired
//	ContinentService continentService;
//
//	@Autowired
//	CustomerService customerService;
//
//	@Autowired
//	DiscountService discountService;
//
//	@Autowired
//	EmplyeeService emplyeeService;
//
//	@Autowired
//	FlightService flightService;
//
//	@Autowired
//	LineService lineService;
//
//	@Autowired
//	PaymentService paymentService;
//
//	@Autowired
//	RegionService regionService;
//
//	@Autowired
//	ReservationService reservationService;
//
//	@Autowired
//	ResidenceService residenceService;
//
//	@Autowired
//	StayService stayService;
//
//	@Autowired
//	VacationService vacationService;
//
//	public Converter<AirlineCompany, String> getAirlineCompanyToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.AirlineCompany, java.lang.String>() {
//			public String convert(AirlineCompany airlineCompany) {
//				return new StringBuilder().append(airlineCompany.getName())
//						.toString();
//			}
//		};
//	}
//
//	public Converter<Long, AirlineCompany> getIdToAirlineCompanyConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.AirlineCompany>() {
//			public be.redo.model.entities.AirlineCompany convert(
//					java.lang.Long id) {
//				return airlineCompanyService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, AirlineCompany> getStringToAirlineCompanyConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.AirlineCompany>() {
//			public be.redo.model.entities.AirlineCompany convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						AirlineCompany.class);
//			}
//		};
//	}
//
//	public Converter<Airport, String> getAirportToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Airport, java.lang.String>() {
//			public String convert(Airport airport) {
//				return new StringBuilder().append(airport.getName())
//						.append(" ").append(airport.getCode()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Airport> getIdToAirportConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Airport>() {
//			public be.redo.model.entities.Airport convert(java.lang.Long id) {
//				return airportService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Airport> getStringToAirportConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Airport>() {
//			public be.redo.model.entities.Airport convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Airport.class);
//			}
//		};
//	}
//
//	/**
//	 * Converts a continent into a String that contains the name and id of the
//	 * continent.
//	 * 
//	 * @return the converter from Continent to String
//	 */
//	public Converter<Continent, String> getContinentToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Continent, java.lang.String>() {
//			public String convert(Continent instance) {
//				return new StringBuilder().append(instance.getName())
//						.append(" ").append(instance.getContinentId())
//						.toString();
//			}
//		};
//	}
//
//	/**
//	 * Converts a id of type long into a Continent.
//	 * 
//	 * @return the converter from long to Continent
//	 */
//	public Converter<Long, Continent> getIdToContinentConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Continent>() {
//			public be.redo.model.entities.Continent convert(java.lang.Long id) {
//				return continentService.read(id);
//			}
//		};
//	}
//
//	/**
//	 * Converts a id of type String into a Continent.
//	 * 
//	 * @return the converter from long to Continent
//	 */
//	public Converter<String, Continent> getStringToContinentConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Continent>() {
//			public be.redo.model.entities.Continent convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Continent.class);
//			}
//		};
//	}
//
//	public Converter<Customer, String> getCustomerToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Customer, java.lang.String>() {
//			public String convert(Customer customer) {
//				return new StringBuilder().append(customer.getEmail())
//						.append(" ").append(customer.getPassword()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Customer> getIdToCustomerConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Customer>() {
//			public be.redo.model.entities.Customer convert(java.lang.Long id) {
//				return customerService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Customer> getStringToCustomerConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Customer>() {
//			public be.redo.model.entities.Customer convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Customer.class);
//			}
//		};
//	}
//
//	public Converter<Discount, String> getDiscountToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Discount, java.lang.String>() {
//			public String convert(Discount discount) {
//				return new StringBuilder().append(discount.getAmount())
//						.append(" ").append(discount.getDescription())
//						.toString();
//			}
//		};
//	}
//
//	public Converter<Long, Discount> getIdToDiscountConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Discount>() {
//			public be.redo.model.entities.Discount convert(java.lang.Long id) {
//				return discountService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Discount> getStringToDiscountConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Discount>() {
//			public be.redo.model.entities.Discount convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Discount.class);
//			}
//		};
//	}
//
//	public Converter<Employee, String> getEmployeeToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Employee, java.lang.String>() {
//			public String convert(Employee employee) {
//				return new StringBuilder().append(employee.getEmail())
//						.append(" ").append(employee.getPassword()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Employee> getIdToEmployeeConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Employee>() {
//			public be.redo.model.entities.Employee convert(java.lang.Long id) {
//				return emplyeeService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Employee> getStringToEmployeeConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Employee>() {
//			public be.redo.model.entities.Employee convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Employee.class);
//			}
//		};
//	}
//
//	public Converter<Flight, String> getFlightToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Flight, java.lang.String>() {
//			public String convert(Flight flight) {
//				return new StringBuilder().append(flight.getFlightCode())
//						.append(" ").append(flight.getDepartureTime())
//						.append(" ").append(flight.getDuration()).append(" ")
//						.append(flight.getSeats()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Flight> getIdToFlightConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Flight>() {
//			public be.redo.model.entities.Flight convert(java.lang.Long id) {
//				return flightService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Flight> getStringToFlightConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Flight>() {
//			public be.redo.model.entities.Flight convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Flight.class);
//			}
//		};
//	}
//
//	public Converter<Line, String> getLineToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Line, java.lang.String>() {
//			public String convert(Line line) {
//				return new StringBuilder().append(line.getLineId()).append(" ")
//						.append(line.getDeparture().getName()).append(" ")
//						.append(line.getDestination().getName()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Line> getIdToLineConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Line>() {
//			public be.redo.model.entities.Line convert(java.lang.Long id) {
//				return lineService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Line> getStringToLineConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Line>() {
//			public be.redo.model.entities.Line convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Line.class);
//			}
//		};
//	}
//
//	public Converter<Payment, String> getPaymentToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Payment, java.lang.String>() {
//			public String convert(Payment payment) {
//				return new StringBuilder().append(payment.getAmount())
//						.append(" ").append(payment.getTransactionDate())
//						.toString();
//			}
//		};
//	}
//
//	public Converter<Long, Payment> getIdToPaymentConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Payment>() {
//			public be.redo.model.entities.Payment convert(java.lang.Long id) {
//				return paymentService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Payment> getStringToPaymentConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Payment>() {
//			public be.redo.model.entities.Payment convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Payment.class);
//			}
//		};
//	}
//
//	public Converter<Region, String> getRegionToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Region, java.lang.String>() {
//			public String convert(Region region) {
//				return new StringBuilder().append(region.getName()).append(" ")
//						.append(region.getContinent()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Region> getIdToRegionConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Region>() {
//			public be.redo.model.entities.Region convert(java.lang.Long id) {
//				return regionService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Region> getStringToRegionConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Region>() {
//			public be.redo.model.entities.Region convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Region.class);
//			}
//		};
//	}
//
//	public Converter<Reservation, String> getReservationToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Reservation, java.lang.String>() {
//			public String convert(Reservation reservation) {
//				return new StringBuilder()
//						.append(reservation.getReservationId()).append(" ")
//						.append(reservation.getPrice()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Reservation> getIdToReservationConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Reservation>() {
//			public be.redo.model.entities.Reservation convert(java.lang.Long id) {
//				return reservationService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Reservation> getStringToReservationConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Reservation>() {
//			public be.redo.model.entities.Reservation convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Reservation.class);
//			}
//		};
//	}
//
//	public Converter<Residence, String> getResidenceToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Residence, java.lang.String>() {
//			public String convert(Residence residence) {
//				return new StringBuilder().append(residence.getName())
//						.append(" ").append(residence.getPrice()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Residence> getIdToResidenceConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Residence>() {
//			public be.redo.model.entities.Residence convert(java.lang.Long id) {
//				return residenceService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Residence> getStringToResidenceConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Residence>() {
//			public be.redo.model.entities.Residence convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Residence.class);
//			}
//		};
//	}
//
//	public Converter<Stay, String> getStayToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Stay, java.lang.String>() {
//			public String convert(Stay stay) {
//				return new StringBuilder().append(stay.getNumberOfNights())
//						.append(" ").append(stay.getCheckinDate()).toString();
//			}
//		};
//	}
//
//	public Converter<Long, Stay> getIdToStayConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Stay>() {
//			public be.redo.model.entities.Stay convert(java.lang.Long id) {
//				return stayService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Stay> getStringToStayConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Stay>() {
//			public be.redo.model.entities.Stay convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Stay.class);
//			}
//		};
//	}
//
//	public Converter<Vacation, String> getVacationToStringConverter() {
//		return new org.springframework.core.convert.converter.Converter<be.redo.model.entities.Vacation, java.lang.String>() {
//			public String convert(Vacation vacation) {
//				return new StringBuilder().toString();
//			}
//		};
//	}
//
//	public Converter<Long, Vacation> getIdToVacationConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.Long, be.redo.model.entities.Vacation>() {
//			public be.redo.model.entities.Vacation convert(java.lang.Long id) {
//				return vacationService.read(id);
//			}
//		};
//	}
//
//	public Converter<String, Vacation> getStringToVacationConverter() {
//		return new org.springframework.core.convert.converter.Converter<java.lang.String, be.redo.model.entities.Vacation>() {
//			public be.redo.model.entities.Vacation convert(String id) {
//				return getObject().convert(getObject().convert(id, Long.class),
//						Vacation.class);
//			}
//		};
//	}
//
//	public void installLabelConverters(FormatterRegistry registry) {
//		registry.addConverter(getAirlineCompanyToStringConverter());
//		registry.addConverter(getIdToAirlineCompanyConverter());
//		registry.addConverter(getStringToAirlineCompanyConverter());
//		registry.addConverter(getAirportToStringConverter());
//		registry.addConverter(getIdToAirportConverter());
//		registry.addConverter(getStringToAirportConverter());
//		registry.addConverter(getCustomerToStringConverter());
//		registry.addConverter(getIdToCustomerConverter());
//		registry.addConverter(getStringToCustomerConverter());
//
//		registry.addConverter(getContinentToStringConverter());
//		registry.addConverter(getIdToContinentConverter());
//		registry.addConverter(getStringToContinentConverter());
//
//		registry.addConverter(getDiscountToStringConverter());
//		registry.addConverter(getIdToDiscountConverter());
//		registry.addConverter(getStringToDiscountConverter());
//		registry.addConverter(getEmployeeToStringConverter());
//		registry.addConverter(getIdToEmployeeConverter());
//		registry.addConverter(getStringToEmployeeConverter());
//		registry.addConverter(getFlightToStringConverter());
//		registry.addConverter(getIdToFlightConverter());
//		registry.addConverter(getStringToFlightConverter());
//		registry.addConverter(getLineToStringConverter());
//		registry.addConverter(getIdToLineConverter());
//		registry.addConverter(getStringToLineConverter());
//		registry.addConverter(getPaymentToStringConverter());
//		registry.addConverter(getIdToPaymentConverter());
//		registry.addConverter(getStringToPaymentConverter());
//		registry.addConverter(getRegionToStringConverter());
//		registry.addConverter(getIdToRegionConverter());
//		registry.addConverter(getStringToRegionConverter());
//		registry.addConverter(getReservationToStringConverter());
//		registry.addConverter(getIdToReservationConverter());
//		registry.addConverter(getStringToReservationConverter());
//		registry.addConverter(getResidenceToStringConverter());
//		registry.addConverter(getIdToResidenceConverter());
//		registry.addConverter(getStringToResidenceConverter());
//		registry.addConverter(getStayToStringConverter());
//		registry.addConverter(getIdToStayConverter());
//		registry.addConverter(getStringToStayConverter());
//		registry.addConverter(getVacationToStringConverter());
//		registry.addConverter(getIdToVacationConverter());
//		registry.addConverter(getStringToVacationConverter());
//	}
//
//	public void afterPropertiesSet() {
//		super.afterPropertiesSet();
//		installLabelConverters(getObject());
//	}
}
